Insure++
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Insure++ is a memory debugger computer program, used by software developers to detect various errors in programs written in C and C++. It is made by Parasoft, and is functionally similar to other memory debuggers, such as Purify, Valgrind and Dr Memory.cite-ref-survey-1-0[1]
Contents
• Overview
• See also
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Overview
Insure++ can automatically find erroneous accesses to freed memory (use-after-free situations), array-bounds violations, freeing unallocated memory (which often happens when a programmer frees the same memory twice, or when he frees global or stack memory), and many others.cite-ref-2[2]
Unlike Purify and Valgrind, Insure++ inserts its instrumentation at the source-code level,cite-ref-3[3]cite-ref-4[4] which allows it to detect errors that the other tools miss.cite-ref-5[5] In particular, Insure++ can detect buffer overflows in automatic arrays, and overflows which involve pointers that accidentally "jump" from one valid memory region to another, as in the following example:
#include <stdlib.h>
int main()
{
char *p = malloc(1024); /* first dynamically-allocated block */
char *q = malloc(1024); /* second block */
p += 1200; /* At this point, "p" is likely to point into the second block.
However, false assumptions about the real behaviour lead to mistakes. */
*p = 'a'; /* invalid write (past the end of the first block) */
}
The source-level instrumentation allows it to not only identify that a leak occurred, but where it occurred.cite-ref-survey-1-1[1] Some tools merely provide information about where the memory was allocated, Insure++ also gives a stack trace for when/where the actual leak occurred.
Additionally, Insure++ will produce Linear Code Sequence and Jump Code Coverage metrics for all tested code.
See also
References
cite-note-survey-11. ↑ "A Survey of Systems for Detection Serial Run-Time Errors" (PDF). Iowa State University High Performance Computing Group. Archived from the original (PDF) on 3 March 2016. Retrieved 20 September 2010.
cite-note-33. ↑ "Parasoft Insure++ at Parasoft website". Retrieved January 29, 2014.
cite-note-44. ↑ citerefreddyReddy, Martin. API Design for C++. p. 239.
External links